﻿#ifndef COMMONPAGE_H
#define COMMONPAGE_H

#include <QWidget>
#include <QMediaPlaylist>
#include "musiclist.h"

namespace Ui {
class CommonPage;
}

// 有三个类型都是本类型,区分一下不同的页面,每个页面都有自己要维护的歌曲
enum PageType
{
    LIKE_PAGE,   // 我喜欢 页面
    LOCAL_PAGE,  // 本地 页面
    HISTORY_PAGR  // 最近播放 页面
};

class CommonPage : public QWidget
{
    Q_OBJECT

public:
    explicit CommonPage(QWidget *parent = nullptr);
    ~CommonPage();

    void setCommonPageUI(const QString &title, const QString &image);

    void setMusicListType(PageType pageType);

    void addMusicToPage(MusicList& musicList);

    void reFresh(MusicList& musicList);

    // 将对应页面的音乐添加到 音乐播放列表里面
    void addMusicToplayList(MusicList& musicList, QMediaPlaylist* playList);

    QString getMusicIdByIndex(int index);

    void setMusicImage(QPixmap pixmap);

signals:
    void updateLikeMusic(bool isLike, QString musicId);
    // 该信号通知QQMusic控件 进行播放全部消息
//    void playAll(PageType pageType);
    void playAll(CommonPage* page);

    // 双击item项后,触发信号调用槽函数,槽函数发射该信号通知QQMusic,播放该位置的音乐
    void playMusicByIndex(CommonPage* page, int index);

private:
    Ui::CommonPage *ui;

    QVector<QString> musicListOfPage;   // 某一个页面下的音乐列表, 这里只需要保存音乐的唯一即可

    PageType pageType;  //说明该页面是哪一个页面
};

#endif // COMMONPAGE_H
